home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / countc1r / cremover.cls < prev    next >
Text File  |  1999-08-27  |  5KB  |  195 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "cRemover"
  6. Attribute VB_GlobalNameSpace = False
  7. Attribute VB_Creatable = True
  8. Attribute VB_PredeclaredId = False
  9. Attribute VB_Exposed = False
  10. Option Explicit
  11.  
  12. Public Event NoMoreProjects()
  13.  
  14. '-------------Private Propertys-----------------'
  15. Private m_NumProjs As Integer
  16. Private m_Selected As Integer
  17. Private Const sKeyName As String = "SOFTWARE\Microsoft\Visual Basic\5.0\RecentFiles"
  18. Private Const MAX_PROJS As Integer = 50
  19.  
  20. '-------------Public Propertys------------------'
  21. Public Property Get NumProjs(lstBox As ListBox) As Integer
  22.     NumProjs = lstBox.ListCount
  23. End Property
  24.  
  25. Public Property Let NumProjs(lstBox As ListBox, ByVal iNewValue As Integer)
  26.      m_NumProjs = iNewValue
  27. End Property
  28.  
  29. '=============================================='
  30.  
  31. Public Property Get Selected() As Integer
  32.     Selected = m_Selected
  33. End Property
  34.  
  35. Public Property Let Selected(ByVal sNewValue As Integer)
  36.     m_Selected = sNewValue
  37. End Property
  38.  
  39.  
  40. '------------Methods----------------------------'
  41. ' remove selected projects
  42. Sub Remove(sValueName As String)
  43.     Dim m_sValueName As String
  44.     Dim i As Integer
  45.     Dim Result As Integer
  46.     
  47.     m_NumProjs = GetNumProjs()
  48.     For i = 1 To MAX_PROJS
  49.        m_sValueName = QueryValue(HKEY_CURRENT_USER, sKeyName, CStr(i))
  50.        
  51.        If m_sValueName <> "" Then
  52.          Result = StrComp(m_sValueName, sValueName, vbTextCompare)
  53.          
  54.          If Result = 0 Then
  55.             ' go into the reg and remove the desired value
  56.             DeleteValue HKEY_CURRENT_USER, sKeyName, CStr(i)
  57.             ' adjust the number of projects
  58.             m_NumProjs = m_NumProjs - 1
  59.             
  60.               If m_NumProjs < 1 Then
  61.                  RaiseEvent NoMoreProjects
  62.               End If
  63.             Exit Sub
  64.          End If
  65.          
  66.        End If
  67.     Next i
  68.     
  69.     MsgBox "Key Not Found!", vbCritical, "No Key"
  70.  
  71. End Sub
  72.  
  73.  
  74. ' get all known projects and apply them
  75. ' to the passed in listbox
  76. Sub GetProjs(lstBox As ListBox)
  77.     Dim cnt As Integer
  78.     Dim CurProj As String
  79.     Dim ProjNameOnly As String
  80.     Dim ProjPath As String
  81.     Dim FrmtName As String
  82.     Dim NumProjs As Integer
  83.     
  84.     NumProjs = GetNumProjs()
  85.     If NumProjs < 1 Then RaiseEvent NoMoreProjects
  86.     '--- Get all the values under _
  87.     HKEY_CURRENT_USER\SOFTWARE\Microsoft\Visual Basic\5.0\RecentFiles
  88.  
  89.     For cnt = 1 To MAX_PROJS
  90.        CurProj = QueryValue(HKEY_CURRENT_USER, sKeyName, CStr(cnt))
  91.        If CurProj <> "" Then ' only add to list if value is something
  92.           ProjPath = GetFileNameFromPath(CurProj)
  93.           ProjNameOnly = GetFileNameNoExt(ProjPath)
  94.           lstBox.AddItem " -- " & ProjNameOnly
  95.        End If
  96.     Next
  97. End Sub
  98.  
  99.  
  100. Private Function GetNumProjs() As Integer
  101.     Dim TotalProjs As Integer
  102.     Dim MaybeProj As String
  103.     Dim i As Integer
  104.     
  105.     For i = 1 To MAX_PROJS
  106.        MaybeProj = QueryValue(HKEY_CURRENT_USER, sKeyName, CStr(i))
  107.        
  108.        If MaybeProj <> "" Then ' if it = something add one
  109.          TotalProjs = TotalProjs + 1
  110.        End If
  111.     Next
  112.     
  113.     GetNumProjs = TotalProjs
  114. End Function
  115.  
  116. ' remove all projects from the registry
  117. ' and passed in listbox
  118. Sub ClearAll(lstBox As ListBox)
  119.     Dim CurProj As String
  120.     
  121.     ' if a value = anything Delete it
  122.     Dim cnt As Integer
  123.     
  124.     For cnt = 1 To MAX_PROJS
  125.         CurProj = QueryValue(HKEY_CURRENT_USER, sKeyName, CStr(cnt))
  126.         If CurProj <> "" Then
  127.             ' go into the reg and remove the desired value
  128.             DeleteValue HKEY_CURRENT_USER, sKeyName, CStr(cnt)
  129.         End If
  130.     Next
  131.     RaiseEvent NoMoreProjects
  132. End Sub
  133.  
  134.  
  135. ' return the selcted projects path
  136. Sub GetSelected(intProjIndex As Integer, SelName As String, label As label)
  137.     '
  138.     Dim ProjPath As String, i As Integer
  139.     Dim ProjName As String
  140.     Dim Result As Integer
  141.     
  142.     intProjIndex = intProjIndex + 1
  143.     
  144.     ' trim down selname
  145.     SelName = Right(SelName, Len(SelName) - 4)
  146.     
  147.     ProjPath = QueryValue(HKEY_CURRENT_USER, sKeyName, CStr(intProjIndex))
  148.     
  149.     If ProjPath <> "" Then ' found one..... but is it the one
  150.        'get it's name
  151.         ProjName = GetFileNameNoExt(ProjPath)
  152.         ProjName = GetFileNameFromPath(ProjName)
  153.        ' is it the one
  154.         Result = StrComp(ProjName, SelName, vbTextCompare)
  155.         
  156.           If Result = 0 Then
  157.              label = ProjPath
  158.              'found it so exit....done
  159.              Exit Sub
  160.           End If
  161.             
  162.     End If
  163.     
  164.     For i = (intProjIndex) To MAX_PROJS
  165.     
  166.        ProjPath = QueryValue(HKEY_CURRENT_USER, sKeyName, CStr(intProjIndex))
  167.          
  168.        If ProjPath <> "" Then ' found one..... but is it the one
  169.           'get it's name
  170.           ProjName = GetFileNameNoExt(ProjPath)
  171.           ProjName = GetFileNameFromPath(ProjName)
  172.           ' is it the one
  173.           Result = StrComp(ProjName, SelName, vbTextCompare)
  174.           If Result = 0 Then
  175.              label = ProjPath
  176.              'found it so exit....done
  177.              Exit For
  178.           End If
  179.             
  180.        End If
  181.       ' else....increment for another go
  182.       intProjIndex = intProjIndex + 1
  183.     Next
  184.          
  185.     
  186.     If ProjPath <> "" Then
  187.        m_Selected = intProjIndex + 1
  188.     End If
  189. End Sub
  190.  
  191.  
  192.  
  193.  
  194.  
  195.